/* eslint-disable */

import { AxiosRequestConfig } from 'axios';
import { request } from '../../utils/request';

export interface PostConfAutoOnlineRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {};
  traceId: string;
}

/**
 * 定时上下架歌曲策略录入
 */
export async function postConfAutoOnline(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfAutoOnlineRes> {
  return request(data, {
    url: '/confAutoOnline',
    method: 'post',
    ...config,
  });
}

export interface PutConfAutoOnlineIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {};
  traceId: string;
}

/**
 * 定时上下架歌曲策略更新
 */
export async function putConfAutoOnlineId(
  id: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PutConfAutoOnlineIdRes> {
  return request(data, {
    url: `/confAutoOnline/${id}`,
    method: 'put',
    ...config,
  });
}

export interface PostConfAutoOnlinePageRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    current: number;
    pageSize: number;
    total: number;
    list: Array<{
      id: number; // 流水ID
      trackList: string; // 歌曲列表
      beginTime: string; // 定时执行时间
      status: number; // 上下架状态
      hideReason: number; // 隐藏原因
      valid: number; // 是否生效 0 - 不生效 1 - 生效
      remarks: string; // 备注
      operator: string; // 操作人
      excuteStatus: number; // 执行状态 0 - 未执行 1 - 已执行
      excuteResult: string; // 执行结果
      insertTime: string; // 插入时间
      modifyTime: string; // 修改时间
      idType: number; // ID类型 1 - 歌曲ID 2 - 歌曲ISRC 3 - 专辑UPC
    }>;
  };
  traceId: string;
}

/**
 * 分页查询
 */
export async function postConfAutoOnlinePage(
  data?: any,
  config?: AxiosRequestConfig,
): Promise<PostConfAutoOnlinePageRes> {
  return request(data, {
    url: '/confAutoOnline/page',
    method: 'post',
    ...config,
  });
}

export interface GetConfAutoOnlineIdRes {
  code: string; // 返回编码
  msg: string; // 返回消息
  data: {
    id: number; // 流水ID
    trackList: string; // 歌曲列表
    beginTime: string; // 定时执行时间
    status: number; // 上下架状态
    hideReason: number; // 隐藏原因
    valid: number; // 是否生效 0 - 不生效 1 - 生效
    remarks: string; // 备注
    operator: string; // 操作人
    excuteStatus: number; // 执行状态 0 - 未执行 1 - 已执行
    excuteResult: string; // 执行结果
    insertTime: string; // 插入时间
    modifyTime: string; // 修改时间
    idType: number; // ID类型 1 - 歌曲ID 2 - 歌曲ISRC 3 - 专辑UPC
  };
  traceId: string;
}

/**
 * 获取定时上下架歌曲策略详情
 */
export async function getConfAutoOnlineId(
  id: string | number,
  data?: any,
  config?: AxiosRequestConfig,
): Promise<GetConfAutoOnlineIdRes> {
  return request(data, {
    url: `/confAutoOnline/${id}`,
    method: 'get',
    ...config,
  });
}
